/****************************************************************************
	This file is part of Basqet.

	Basqet is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	Basqet is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    along with Basqet.  If not, see <http://www.gnu.org/licenses/>.

****************************************************************************/

#ifndef UICAPABILITIES_H
#define UICAPABILITIES_H

#include <QObject>

/** This class is used in signals to indiate that an editor is active
	and its capabilities and allows controllers to turn on menys and
	tool-bars according to awctive object.

	E.g. Edit a TextNote is made in RichText thus the Rich
	TextToolbar with fonts etc shall be enabled along with apropriate
	menus.

	Each capability implies slots that the object in question must have. Menus
	and toolbars will be connected (and disconnected) to those slots.

	**/

class UICapabilities : public QObject
{
	public:
		UICapabilities();
		UICapabilities(const UICapabilities& other);

		virtual ~UICapabilities();
		UICapabilities& operator = (const UICapabilities& other);

		void setRichText(const bool can);
		bool canRichText() const;

		void setDeletion(const bool can);
		bool canDeletion() const;

		void setLabeling(const bool can);
		bool canLabeling() const;

		void setConnectable(const bool can);
		bool canConnectable() const;


	private:

		bool mCanRichText;
		bool mCanDeletion;
		bool mCanLabeling;
		bool mCanConnectable;

};

#endif // UICAPABILITIES_H
